home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / gfront11.lha / GUIFront / Demos / Source / GetAlt.c < prev    next >
C/C++ Source or Header  |  1994-11-01  |  5KB  |  188 lines

  1.  
  2. /* getalt.c - Show off GetAlt kind and automatic ASL requester feature
  3.  *
  4.  * This is a GUIFront example GUI. To build an example, compile and link this
  5.  * file with Generic.o (also supplied).
  6.  * Everything prefixed with DEMO_ is exported to Generic.o.
  7.  */
  8.  
  9. #include <libraries/guifront.h>
  10. #include <libraries/asl.h>
  11.  
  12. /* First, some Gadget ID's */
  13.  
  14. enum
  15. {
  16.     GID_FONT,
  17.     GID_GETFONT,
  18.     GID_FILE,
  19.     GID_GETFILE,
  20.     GID_DIR,
  21.     GID_GETDIR,
  22.     GID_SCREENMODE,
  23.     GID_GETSCREENMODE,
  24.     GID_OTHER,
  25.     GID_GETOTHER,
  26.     GID_OK,
  27. };
  28.  
  29. /* Some data and tag items we'll be needing later */
  30.  
  31. /* First, some general tags for the ASL requesters. These aren't strictly
  32.  * required (the requesters will open without them), but a title-less
  33.  * file requester isn't particulary user friendly.
  34.  */
  35.  
  36. static const struct TagItem asltags[] =
  37. {
  38.     {ASL_OKText, "Click me!"},
  39.     {ASL_Hail,   "Automatic ASL requester"},
  40.     {TAG_DONE}
  41. };
  42.  
  43. static const struct TagItem txtags[] =
  44. {
  45.     {GTTX_Border, TRUE},
  46.     {TAG_DONE},
  47. };
  48.  
  49. static const struct TagItem getfonttags[] =
  50. {
  51.     {ALT_Image, ALTI_GetFont},
  52.     {ALT_AslRequester, TRUE},
  53.     {ALT_AslTags, asltags},
  54.     {TAG_DONE},
  55. };
  56.  
  57. static const struct TagItem getfiletags[] =
  58. {
  59.     {ALT_Image, ALTI_GetFile},
  60.     {ALT_AslRequester, TRUE},
  61.     {ALT_AslTags, asltags},
  62.     {TAG_DONE},
  63. };
  64.  
  65. static const struct TagItem getdirtags[] =
  66. {
  67.     {ALT_Image, ALTI_GetDir},
  68.     {ALT_AslRequester, TRUE},
  69.     {ALT_AslTags, asltags},
  70.     {TAG_DONE},
  71. };
  72.  
  73. static const struct TagItem getscrmodetags[] =
  74. {
  75.     {ALT_Image, ALTI_GetScreenMode},
  76.     {ALT_AslTags, asltags},
  77.     {ALT_AslRequester, TRUE},
  78.     {TAG_DONE},
  79. };
  80.  
  81. static const struct TagItem getothertags[] =
  82. {
  83.     {ALT_Image, ALTI_GetMisc},
  84.     {ALT_AslTags, asltags},
  85.     {ALT_AslRequester, TRUE},
  86.     {TAG_DONE},
  87. };
  88.  
  89. /* Now, the GadgetSpec's we'll be needing for this GUI */
  90.  
  91. static GadgetSpec gadgetspecs[] =
  92. {
  93.     {TEXT_KIND,      25,0,{0,0,0,0, "File:", NULL, GID_FILE, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
  94.     {GETALT_KIND,    0,0,{0,0,0,0, NULL,    NULL, GID_GETFILE, PLACETEXT_IN}, getfiletags, GS_DefaultTags},
  95.     {TEXT_KIND,      25,0,{0,0,0,0, "Font:", NULL, GID_FONT, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
  96.     {GETALT_KIND,    0,0,{0,0,0,0, NULL,    NULL, GID_GETFONT, PLACETEXT_IN}, getfonttags, GS_DefaultTags},
  97.     {TEXT_KIND,      25,0,{0,0,0,0, "Dir:", NULL, GID_DIR, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
  98.     {GETALT_KIND,    0,0,{0,0,0,0, NULL,    NULL, GID_GETDIR, PLACETEXT_IN}, getdirtags, GS_DefaultTags},
  99.     {TEXT_KIND,      25,0,{0,0,0,0, "Screenmode:", NULL, GID_SCREENMODE, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
  100.     {GETALT_KIND,    0,0,{0,0,0,0, NULL,    NULL, GID_GETSCREENMODE, PLACETEXT_IN}, getscrmodetags, GS_DefaultTags},
  101.     {TEXT_KIND,      25,0,{0,0,0,0, "Other:", NULL, GID_OTHER, PLACETEXT_LEFT}, txtags, GS_DefaultTags},
  102.     {GETALT_KIND,    0,0,{0,0,0,0, NULL,    NULL, GID_GETOTHER, PLACETEXT_IN}, getothertags, GS_DefaultTags},
  103.     {BUTTON_KIND,    0,0,{0,0,0,0, " Ok ",  NULL, GID_OK, PLACETEXT_IN}, NULL, GS_DefaultTags | GS_BoldLabel},
  104. };
  105.  
  106. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  107.  * layout engine can locate gadgets merely by their Gadget IDs.
  108.  */
  109.  
  110. GadgetSpec *DEMO_GadgetSpecList[] =
  111. {
  112.     &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
  113.     &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
  114.     &gadgetspecs[7], &gadgetspecs[8], &gadgetspecs[9], &gadgetspecs[10],
  115.     NULL,
  116. };
  117.  
  118. /* Finally, the layout tag list itself. This is where most of the work is
  119.  * done. This list completely describes how the above gadgets are arranged
  120.  * in groups in the GUI.
  121.  */
  122.  
  123. ULONG DEMO_LayoutList[] =
  124. {
  125.     GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  126.  
  127.     GUIL_VertGroup, 1,
  128.         GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  129.  
  130.         GUIL_FrameType, GUILFT_Recess,
  131.  
  132.         GUIL_HorizGroup, 0,
  133.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  134.             GUIL_GadgetSpecID, GID_FILE,
  135.             GUIL_GadgetSpecID, GID_GETFILE,
  136.         TAG_DONE,
  137.  
  138.         GUIL_HorizGroup, 0,
  139.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  140.             GUIL_GadgetSpecID, GID_DIR,
  141.             GUIL_GadgetSpecID, GID_GETDIR,
  142.         TAG_DONE,
  143.  
  144.         GUIL_HorizGroup, 0,
  145.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  146.             GUIL_GadgetSpecID, GID_FONT,
  147.             GUIL_GadgetSpecID, GID_GETFONT,
  148.         TAG_DONE,
  149.  
  150.         GUIL_HorizGroup, 0,
  151.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  152.             GUIL_GadgetSpecID, GID_SCREENMODE,
  153.             GUIL_GadgetSpecID, GID_GETSCREENMODE,
  154.         TAG_DONE,
  155.  
  156.         GUIL_HorizGroup, 0,
  157.             GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  158.             GUIL_GadgetSpecID, GID_OTHER,
  159.             GUIL_GadgetSpecID, GID_GETOTHER,
  160.         TAG_DONE,
  161.     TAG_DONE,
  162.  
  163.     GUIL_HorizGroup, 1,
  164.         GUIL_Flags, GUILF_EqualSize,
  165.         GUIL_GadgetSpecID, GID_OK,
  166.     TAG_DONE,
  167.  
  168.     TAG_DONE,
  169. };
  170.  
  171. /* Obligatory version tag */
  172.  
  173. static const char ver[] = "$VER: GetAlt 1.0 " __AMIGADATE__;
  174.  
  175. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  176.  
  177. int DEMO_InitialOrientation = GUIL_VertGroup;
  178.  
  179. STRPTR DEMO_WindowTitle = "GetAlt Demo GUI";
  180. STRPTR DEMO_AppID       = "GetAltDemo";
  181.  
  182. STRPTR DEMO_Version     = "1.0",
  183.        DEMO_LongDesc    = "Demo program - GetAlt and Automatic ASL Requesters",
  184.        DEMO_Author      = "Michael Berg",
  185.        DEMO_Date        = __AMIGADATE__;
  186.  
  187. BOOL   DEMO_Backfill    = TRUE;
  188.